/******************************************************************************
//             INTEL CORPORATION PROPRIETARY INFORMATION
//  This software is supplied under the terms of a license agreement or
//  nondisclosure agreement with Intel Corporation and may not be copied
//  or disclosed except in accordance with the terms of that agreement.
//        Copyright (c) 2000-2001 Intel Corporation. All Rights Reserved.
//
//  Description:
//      Intel(R) JPEG library for X platform 
//
********************************************************************************/
#ifndef _IJEHUFF_H
#define _IJEHUFF_H

/* Base line sequential */
IJXRESULT ijHuffmanEncode_Gray_BLS(const Ipp16s **ppMCUBuf, 
                           IJBITTREAMSTATE *pStream,
                           IJENCODESTATE *pEnCodeState);

IJXRESULT ijHuffmanEncode_444_BLS(const Ipp16s **ppMCUBuf, 
                           IJBITTREAMSTATE *pStream,
                           IJENCODESTATE *pEnCodeState);

IJXRESULT ijHuffmanEncode_422_BLS(const Ipp16s **ppMCUBuf,  
                           IJBITTREAMSTATE *pStream,
                           IJENCODESTATE *pEnCodeState);

IJXRESULT ijHuffmanEncode_411_BLS(const Ipp16s **ppMCUBuf,  
                           IJBITTREAMSTATE *pStream,
                           IJENCODESTATE *pEnCodeState);

/* DC Progressive */

IJXRESULT ijHuffmanEncode_Gray_DC(const Ipp16s **ppMCUBuf, 
                                   int ah,
                                   int al,
                                   IJBITTREAMSTATE *pStream,
                                   IJENCODESTATE *pEncodeState);
IJXRESULT ijHuffmanEncode_444_DC( const Ipp16s **ppMCUBuf, 
                                   int ah,
                                   int al,
                                   IJBITTREAMSTATE *pStream,
                                   IJENCODESTATE *pEncodeState);
IJXRESULT ijHuffmanEncode_422_DC( const Ipp16s **ppMCUBuf, 
                                   int ah,
                                   int al,
                                   IJBITTREAMSTATE *pStream,
                                   IJENCODESTATE *pEncodeState);
IJXRESULT ijHuffmanEncode_411_DC( const Ipp16s **ppMCUBuf, 
                                   int ah,
                                   int al,
                                   IJBITTREAMSTATE *pStream,
                                   IJENCODESTATE *pEncodeState);

/* AC Progressive */
IJXRESULT ijHuffmanEncode_ACFirst(Ipp16s      *pMCUBuf, 
                                   int         ss, 
                                   int         se,
                                   int         al,
                                   IJCOMPSPEC  *pComSpec,
                                   IJBITTREAMSTATE *pStream,
                                   IJENCODESTATE *pEncodeState);
IJXRESULT ijHuffmanEncode_ACRefine(Ipp16s      *pMCUBuf, 
                                    int         ss, 
                                    int         se,
                                    int         al,
                                    IJCOMPSPEC  *pComSpec,
                                    IJBITTREAMSTATE *pStream,
                                    IJENCODESTATE *pEncodeState);
#endif
/* EOF */
